/*
 * LDIR
 * 
 * LDIR, a GPS cartography application built for Let's Do It Romania eco 
 * campaign.
 * Copyright (C) 2010 Genera Software <office@generasoftware.com>
 * 
 * http://generasoftware.com/
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA 02111-1307 USA
 */
#ifndef LDIRWSREQUESTS_H
#define LDIRWSREQUESTS_H
#include <e32base.h>  // CBase, link against euser.lib
#include <RequestsStringTable.h>
_LIT8(KQueryParamSeparator, "###");

enum THttpRequestType
	{
	EHttpGET, EHttpPOST, EHttpDELETE
	};

enum TAuthenticationType
	{
	EAuthNone, EAuthApp, EAuthUser
	};

enum TRequests
	{
	EWSReqNone,
	// relative resource paths for Restful requests
	/** account/register */
	EWSReqValidateUser,
	/** userAuth */
	EWsReqGetUserSalt,
	EWSReqGetInstallationId,
	EWSReqCreateWastePoint,
	EWsReqCreateWastePoints
	};

// Stores information about a ws request
typedef struct TWSRequest
	{
	TInt iID;
	TInt iResourceStringIndex;
	THttpRequestType iHttpType;
	TAuthenticationType iAuthType;
	TBool iSecure;
	TBool iNeedsParam;
	} _TWSRequest;

// List of all supported ws requests
static TWSRequest KWSRequests[] =
	{
		{
			EWSReqValidateUser,
			ReqStringTable::EReqValidateUser,
			EHttpGET,
			EAuthNone,
			EFalse,
			ETrue
		},
		{
			EWsReqGetUserSalt,
			ReqStringTable::EReqGetUserSalt,
			EHttpGET,
			EAuthNone,
			EFalse,
			ETrue
		},
		{
			EWSReqGetInstallationId,
			ReqStringTable::EReqGetInstalationId,
			EHttpGET,
			EAuthNone,
			EFalse,
			EFalse
		},
		{
			EWSReqCreateWastePoint,
			ReqStringTable::EReqCreateWastePoint,
			EHttpPOST,
			EAuthUser,
			EFalse,
			EFalse
		},
		{
			EWsReqCreateWastePoints,
			ReqStringTable::EReqCreateWastePoints,
			EHttpPOST,
			EAuthUser,
			EFalse,
			EFalse
		}
	};

static const TInt KWSRequestsCount = sizeof( KWSRequests ) / sizeof(TWSRequest);

const TWSRequest* GetRequestById( TInt aRequestId );

#endif // LDIRWSREQUESTS_H
// End of File
